1. Field of the Invention
The present invention relates to a technology for accelerating screen display such as computer graphics in which repeated updating of the screen is required. More specifically, the present invention relates to a parallel rendering device for accelerating processing speed by distributing the screen rendering process to a plurality of rendering devices on a screen-to-screen base.
2. Description of the Related Art
In recent years, the trend in the field of applications of computer graphics has been toward such fields as three-dimensional graphics animations in which the amount of information of rendering data is constantly expanding. Along with this trend is the increasing demand for accelerated display.
Examples of the prior art for dealing with this demand for acceleration involve the use of pipeline processing (for example, Japanese Patent Laid-open No. 150973/90). This type of the art is referred to hereinbelow as the first example of the prior art.
Another example of the known prior art for dealing with this demand for acceleration described above involves apportioning of the rendering processing among a plurality of rendering devices based on rendering commands. This type of solution is described in, for example, Japanese Patent Laid-open No. 150973/90 and Japanese Patent Laid-open No. 182536/95. This type of the prior art is referred to as the second example of the prior art.
Of the above-described prior art, the first example of the prior art may be held back by the slowest processing unit and thus may fail to take full advantage of the performance of other, faster processing units. In such a case, the problem arises that processing speed cannot be adequately accelerated.
In the second example of the prior art, on the other hand, it must be decided for each rendering command whether or not rendering should be executed in accordance with the rendering command. This decision is necessary to eliminate display abnormalities that may occur when processing of a certain rendering command is outstripped by performance of another rendering command. The problem therefore arises that processing is slowed by the time required for this decision.
It is an object of the present invention to provide a parallel rendering device that can solve the above-described problems of the first and second examples of the prior art and allow an acceleration of the rendering process.
To achieve the above-described object, the first parallel rendering device of the present invention is provided with:
a plurality of rendering devices for generating display data in accordance with received rendering commands and data and storing the display data, each of the rendering device issuing a window number of the window that the rendering device is charged to render, upon completion of the generating and storing the display data;
a rendering command/data generator for generating a rendering command and data and sequentially distributing the rendering command and data to each of the rendering devices with the rendering command and data for displaying one screen of a window as a unit;
display switch means for connecting one of the rendering devices to a display to supply display data generated by the one of the rendering devices in response to a selection signal;
a window number buffer for storing information indicating the position of the visible portion of each window to be displayed on the display;
a window number/rendering device management table for registering the window number in combination with a corresponding rendering device number, said corresponding rendering device number being the device number of the rendering device that issued the window number of concern, the window number/rendering device management table, while receiving the information from the window number buffer, issuing, as the selection signal, rendering device number registered in combination with the window number of the window that has the visible portion indicated by the information; and
means for controlling display, the means for controlling display controlling reading of the information stored in the window number buffer as well as reading of the display data from each of the plurality of rendering devices.
The window number buffer has sections each corresponding to the visible portion of each window, each of the sections is subdivided into areas corresponding to pixels in the visible portion of the window in the screen of the display.
Each of the areas stores a window number of the window that includes the pixel corresponding to the area of concern so that the position of the visible portions of all windows are mapped on the window number buffer to represent the above-described information.
The rendering command/data generator can allocate the window numbers to the window number buffer depending on a change in a state of display of a window.
The rendering device can have a function of issuing a permission signal by which the rendering device of concern permits a rendering device that is to perform rendering next to the rendering device of concern to start rendering.
The permission signal being issued after the rendering device of concern issues the window number.
The display can be a raster scan display, and, in this case, the means for controlling display reads the window number from the window number buffer to supply the window number to the window number/rendering device management table and also the means for controlling display reads the display data from the rendering device connected to the raster scan display by the display switch means, both in synchronization with vertical and horizontal synchronization signals.
The second parallel rendering device of the present invention comprises a plurality of boards, a rendering command/data generator for generating a rendering command and data and sequentially distributing the rendering command and data to each of the boards with the rendering command and data for displaying one screen of a window as a unit, and means for controlling display.
Each of the boards comprises:
a rendering device for generating display data in accordance with received rendering commands and data and storing the display data, each of the rendering device issuing a window number of the window that the rendering device is charged to render, upon completion of the generating and storing the display data;
window number buffer having sections each corresponding to visible portions of windows to be rendered by the rendering device of the board concerned as well as rendering devices of other boards, each of the sections being subdivided into areas that correspond to pixels included in the visible portion of the window in the screen of the display, wherein each of the areas stores a window number of the window that includes a pixel corresponding to the area of concern so that the positions of the visible portions of the windows to be rendered by the parallel rendering device are mapped on the window number buffer of each board;
a window number/rendering device management table for registering the window numbers in combination with corresponding rendering device numbers, the corresponding rendering device numbers being the device numbers of the rendering devices that issued the window number, the window number/rendering device management table, while receiving the window number from the window number buffer, issuing, as a selection signal, rendering device number registered in combination with the received window number:
display switch means for transferring, to a display, display data supplied from a rendering device of its own board as well as for passing the display data provided by rendering devices of the other boards, the display switch means being serially connected with display switch means of other boards by bus and selecting the transfer or the passage of the display data in response to the selection signal; and
means for controlling display to control reading of the window number stored in said window number buffer as well as reading of the display data from each of the rendering devices in the plurality of boards, wherein the means for controlling display reads display data to supply to a pixel of a window and reads the window number from an area of the window number buffer corresponding to the pixel.
The content of the window number/rendering device management table can be updated each time when the rendering device charged with rendering of a window is changed.
The rendering command/data generator can have a plurality of render programs and a window management program. The render programs are each charged with rendering of differing windows and issue rendering commands and data necessary for rendering windows. The window management program distributes the rendering commands and data sequentially issued by the render programs to each of rendering devices screen by screen, and each time when an issue of the rendering command and data to a rendering device is completed, issues the window number of the window to be rendered, to the rendering device of concern. The window management program issues window numbers to be stored in the window number buffer, and the means for controlling display controls writing of the window numbers to the window number buffer to allocate the window numbers in the window number buffer.
Each of the rendering devices can include two rendering memories and write display data that were generated based on the rendering commands and data to one of the rendering memories while providing an output of the content of the other rendering memory.
Each of the rendering devices is provided with a display list data unit for storing display list data that indicate a plurality of polygon shapes. Each of the rendering devices generates display data based on rendering commands and data issued by said rendering command/data generator and the contents of the display list data unit.
The above and other objects, features, and advantages of the present invention will become apparent from the following description referring to the accompanying drawings which illustrate examples of preferred embodiments of the present invention.